package com.sg.dto.biz.app.req;

import com.sg.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.io.Serializable;

/**
 * @desc ImplementQuantitativeScoreForAchievementLevelCalcComReqDto
 * @使用场景
 */
@Data
public class ImplementQuantitativeScoreForAchievementLevelCalcComReqDto
        extends BaseDto
        implements Serializable {

    /**
     * 是否上不封顶 TRUE:是 FALSE:否
     */
    @NotNull(message = "是否上不封顶不能为空")
    @ApiModelProperty("是否上不封顶")
    private String isCeilingScore;

    /**
     * 权重分值
     */
    @NotNull(message = "权重分值不能为空")
    @ApiModelProperty("权重分值")
    private Double weightScore;

    /**
     * 冗余指标业务类型 NUMBER_GROWTH:数量增长型 NUMBER_DECLINE:数量降幅型 PERCENTAGE_GROWTH:百分比增长型 PERCENTAGE_DECLINE:百分比降幅型 PROGRESS:进度型 RATIO_GROWTH:比率增长型 RATIO_DECLINE:比率降幅型 SUBJECTIVE_QUALITATIVE:主观定性
     */
    @NotNull(message = "冗余指标业务类型不能为空")
    @ApiModelProperty("冗余指标业务类型")
    private String targetValueType;

    /**
     * 量化评分类型 COMPLETION_DEGREE:完成度 EVERY_ADD_AND_SUB:每加减 ACHIEVEMENT_LEVEL:成果等级
     */
    @NotNull(message = "量化评分类型不能为空")
    @ApiModelProperty("量化评分类型")
    private String quantitativeRatingType;

    /**
     * 更新周期ID
     */
    @NotNull(message = "更新周期ID不能为空")
    @ApiModelProperty("更新周期ID")
    private String updateCycleId;

    /**
     * 归属子周期被评对象目标周期ID
     */
    @NotNull(message = "归属子周期被评对象目标周期ID不能为空")
    @ApiModelProperty("归属子周期被评对象目标周期ID")
    private String evaObjTargetCycleId;

    /**
     * 归属目标内容ID
     */
    @NotNull(message = "归属目标内容ID不能为空")
    @ApiModelProperty("归属目标内容ID")
    private String targetCycleContentId;

    /**
     * 归属评价模板ID
     */
    @NotNull(message = "归属评价模板ID不能为空")
    @ApiModelProperty("归属评价模板ID")
    private String evaluationTemplateId;

    /**
     * 创建于空间ID
     */
    @NotNull(message = "创建于空间ID不能为空")
    @ApiModelProperty("创建于空间ID")
    private String spaceId;

}
